In some tile based rendering architectures, a parameter buffer may store intermediate results from a geometry stage. The intermediate results may include screen positions, texture coordinates, and other variables associated with primitives. Without such a parameter buffer, the primitives that cover several tiles need to be rendered repeatedly. Such repeated rendering may waste computational resources and provided increased memory traffic.
However, as tile sizes are increased, the primitives that cover multiple tiles may be reduced to a level such that the parameter buffer may be removed. Such removal of the parameter buffer may advantageously save on memory size and traffic. For example, fewer primitives would cover more than one tile and such repeated rendering may be reduced to an acceptably efficient level. Such tile size increases may allow for a parameter buffer free architecture which, as the name suggests, may not include a parameter buffer. In such parameter buffer free architectures, to improve the efficiency of rendering, a two pass vertex rendering flow may be implemented. The first pass may determine the position of primitives and sort them to tiles (e.g., indicating which primitives are overlapping particular tiles). The second pass may perform complete vertex shading (e.g., again including position calculation) on a tile-by-tile basis. In such architectures, though the first pass has already performed position computations for primitives (e.g., to sort them to tiles), the computed positions would not be kept since there is no parameter buffer. Therefore, such an architecture may lead to duplicated position computations in the second pass. For example, the vertex data of primitives may need to be loaded twice and the position data may need to be calculated twice. Such repeated calculations may be inefficient, wasting computational resources and providing increased memory traffic.
As such, existing techniques may not provide efficient graphics rendering implementations. Such problems may become critical as the desire to utilize graphics rendering for video games, simulators, movie effects, computer modeling programs, and the like becomes more widespread.